package com.ssy.lingxi.report.service.tally;

import com.ssy.lingxi.report.api.vo.request.OperateNoticeVO;
import com.ssy.lingxi.report.entity.report.MemberTallyReportDO;
import com.ssy.lingxi.report.model.bo.MemberTallyReportBO;
import com.ssy.lingxi.report.model.vo.response.MemberTallyReportVO;

import java.util.List;

/**
 * 会员计数接口定义
 * @author 伍将
 * @date 2020/11/21
 * @version 2.0.0
 */
public interface IMemberTallyService {

    /**
     * 转换会员
     * @param tallyBO 会员理货报告
     * @return 转换会员
     */
    MemberTallyReportVO convertMember(MemberTallyReportBO tallyBO);

    /**
     * 设置会员
     * @param tallyReportBO 会员理货报告
     * @param noticeVO 操作通知
     * @return 设置会员
     */
    MemberTallyReportBO setMemberTally(MemberTallyReportBO tallyReportBO, OperateNoticeVO noticeVO);

    /**
     * 设置会员
     * @param tallyBO  会员理货报告
     * @param noticeVO 操作通知
     * @return 设置会员
     */
    @Deprecated
    MemberTallyReportBO setMember(MemberTallyReportBO tallyBO, OperateNoticeVO noticeVO);

    /**
     * 统计计数
     * @param reportList 会员理货报告列表
     * @return 统计计数
     */
    List<MemberTallyReportDO> statisticsTally(List<MemberTallyReportDO> reportList);
}
